-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pHomotopy, pmap_postwhisker #1797
Conversation
@jdchristensen I thought I redefined the proofs in pHomotopy to be wildcat proofs which should unfold to the ones in core. |
However, after this commit, the proof in pHomotopy.v needs five universe variables, one for each type, one as an upper bound, and one strictly greater, for the WildCat instances. The proof in Core needs exactly three. Because of this, I think we should stick with the proof in Core, and remove the WildCat proof. As usual, the reason is that those two extra variables are free, and might accumulate. Sound good? (I really wish we could use |
This avoids stray universe variables, and also allows the universe variables of the input types to be free.
I went ahead and removed the versions in pHomotopy.v. I've also pushed other changes related to the interplay between WildCat and pointed types. The changes to ExactSequence avoid the extra "WildCat" universe variable for some results (where it was just a matter of changing notation), and in those cases the universe variables for the input types become free, whereas before several of them (but not all) were constrained to be equal, which made it hard for Coq to guess the correct universe variables. I've now marked this PR as ready for review. Incidentally, pHomotopy.v is very short, and could just be merged into Core.v. |
I think it makes sense for phomotopy to be merged. If I recall correctly it was split out before we had wild cats, so it made sense to grpup such lemmas in once place. Now we don't really need any of them. |
Everything here looks good. Regarding the changing of notation from $ to * in ExactSequence, I've wondered for some time if it might make sense to generalize everything there from pType to a generic pointed category. This should encompass exactness for Grp, Ab, any abelian category, pointed types, spectra etc. The only missing component seems to a notion of wild cat with small limits like fibers/kernels. This would also allow us to easily talk about left-exact functors which might be useful for describing properties of the homotopy group functors. |
I agree, and I've now merged pHomotopy.v into Core.v. The first of the new commits simplifies pHomotopy.v in place (including removing Univalence from one result). The second makes some minor changes to Pointed/Core.v, removing one redundant result and updating lots of comments. The third commit does the merge, but it requires reordering a lot of things in Pointed/Core.v. There are no non-trivial changes, but the diff is large, so you'll need to review the commits separately. The fourth commit just removes three I'll wait for another review of these four commits. I think there's still a lot of room for simplifying Pointed/Core.v, but it will need to be balanced against the challenges involving universe variables that arise when using WildCat. I also agree that ExactSequence could probably be done in any WildCat, but I'm not going to tackle that. |
The first commit gets rid of a stray universe variable in
pHomotopy
, by omitting the: Type
in theDefinition
.The second commit needs a bit of discussion. It does two things:
First, it changes the statement to use pointed notation instead of WildCat notation. To make this work, we need to use
cat_postwhisker (A:=pType)
in the proof, instead of the notation$@L
. I'm not sure which way is better, but since the next bullet point needs this change as well, I kept it. (As an aside, I don't know why Coq isn't able to figure out which wild category structure to use in this situation...)Second, it frees up the universe variables for the three types involved. The previous proof forced them to be equal. That should be fine, because
pType
is cumulative, but in practice (in out-of-tree work), Coq was not able to figure out the universe variables on its own. This proof hasu1
,u2
,u3
for the three types,v
for an upper bound, and then one larger universe variable as you always need with WildCats.A larger point to discuss is that we actually have two proofs of
pmap_postwhisker
(andpre
) in the library, one in Core.v and one in pHomotopy.v. For backwards compatibility, we should probably have this result in Core.v. We could either keep the version currently there, or move the version from pHomotopy.v to Core.v. The current version in Core.v looks like:Thoughts?